// 704. 二分查找
class Solution {
public:
    int search(vector<int>& nums, int target) {
        int left = 0, right = nums.size()-1;
        
        while(left <= right)
        {
            int mid = left + (right - left) / 2; // 防止溢出
            if(nums[mid] < target)
                left = mid + 1;
            else if(nums[mid] > target)
                right = mid - 1;
            else
                return mid;
        }

        return -1;
    }
};

// 387. 字符串中的第一个唯一字符
class Solution {
public:
    int firstUniqChar(string s) {
        int map[26] = {0};
        for(auto e : s)
        {
            map[e - 'a']++;
        }
        for(int i = 0 ; i < s.size(); i++)
        {
            if(1 == map[s[i] - 'a']) return i;
        }
        return -1;
    }
};